home *** CD-ROM | disk | FTP | other *** search
- #
- # Dimerman Dan abd Zohar Bengad
- #
-
- skull = sphere(vector(0,0,0),1) * scale(vector(1.0,0.65,0.8));
- color(skull, blue);
-
- cheeks = sphere(vector(0.4,0.2,-0.1),0.5) + sphere(vector(-0.4,0.2,-0.1),0.5);
- color(cheeks, yellow);
-
- eyes = sphere(vector(0.3,0.45,0.25),0.2) + sphere(vector(-0.3,0.45,0.25),0.2);
- color(eyes, white);
-
- pupils = sphere(vector(0.3,0.6,0.25),0.1) + sphere(vector(-0.3,0.6,0.25),0.1);
- color(pupils, black);
-
- mouth_cross = cbspline ( 3,
- list( ctlpt(E2,-0.024, 0.488),
- ctlpt(E2,0.164, 0.48),
- ctlpt(E2,0.28, 0.344),
- ctlpt(E2,0.328, 0.22),
- ctlpt(E2,0.372, -0.036),
- ctlpt(E2,0.252, -0.064),
- ctlpt(E2,0.36, -0.112),
- ctlpt(E2,0.252, -0.236),
- ctlpt(E2,0.136, -0.256),
- ctlpt(E2,-0.044, -0.216),
- ctlpt(E2,-0.216, -0.26),
- ctlpt(E2,-0.304, -0.24),
- ctlpt(E2,-0.412, -0.116),
- ctlpt(E2,-0.316, -0.072),
- ctlpt(E2,-0.412, -0.032),
- ctlpt(E2,-0.396, 0.188),
- ctlpt(E2,-0.356, 0.32),
- ctlpt(E2,-0.244, 0.452),
- ctlpt(E2,-0.024, 0.5),
- ctlpt(E2,-0.024, 0.5),
- ctlpt(E2,0.168, 0.472),
- ctlpt(E2,0.268, 0.336)),
- list( KV_OPEN ) );
-
- mouth_scale = cbezier( list (
- ctlpt(E2, -0.584000, 0.652000),
- ctlpt(E2, -0.216000, 0.648000),
- ctlpt(E2, 0.112000, 0.504000),
- ctlpt(E2, -0.060000, -0.568000),
- ctlpt(E2, 0.644000, 3.040000),
- ctlpt(E2, 0.856000, 0.0)));
-
- mouth_axis = cbezier( list (ctlpt( E2, 0, 0),
- ctlpt( E2, .2,0),
- ctlpt( E2, .3,0),
- ctlpt( E2, .4,0),
- ctlpt( E2, .5,0),
- ctlpt( E2, .6, 0)));
-
- mouth = SWPSCLSRF( mouth_cross , mouth_axis, mouth_scale , off, 0);
-
- free(mouth_cross);
- free(mouth_axis);
- free(mouth_scale);
-
- head = list (skull , cheeks , eyes , pupils ,
- (mouth*scale(vector(1.9,1.9,1.9))*rotx(180)*rotz(90)*trans(vector(0.0,0.4,-0.3))));
-
- free(skull);
- free(cheeks);
- free(mouth);
- free(eyes);
- free(pupils);
-
- body_Cross = cbspline( 3,
- list( ctlpt( E2,-0.548, 0.016),
- ctlpt( E2,-0.48, 0.336),
- ctlpt( E2,-0.008, 0.928),
- ctlpt( E2,0.496, 0.312),
- ctlpt( E2,0.56, 0.032),
- ctlpt( E2,0.448, -0.128),
- ctlpt( E2,-0.436, -0.148),
- ctlpt( E2,-0.548, 0.008),
- ctlpt( E2,-0.548, 0.016),
- ctlpt( E2,-0.48, 0.336),
- ctlpt( E2,-0.008, 0.878))
- ,list( KV_PERIODIC ) );
-
- body_scaleCrv = cbspline( 3,
- list ( ctlpt( E2, -0.904, 0.1),
- ctlpt( E2, -0.86, 0.15),
- ctlpt( E2, -0.492, 0.2),
- ctlpt( E2, -0.416, 0.3),
- ctlpt( E2, -0.236, 0.4),
- ctlpt( E2, 0.064, 0.5),
- ctlpt( E2, 0.368, 1.5),
- ctlpt( E2, 0.672, 1.3),
- ctlpt( E2, 0.708, 0.2),
- ctlpt( E2, 0.84, 0.2),
- ctlpt( E2, 0.9, 0.2),
- ctlpt( E2, 1.224, 0.2),
- ctlpt( E2, 1.5, 0.2),
- ctlpt( E2, 1.648, 0.2),
- ctlpt( E2, 1.708, 0.1),
- ctlpt( E2, 1.748, 0.0)),
-
- list( KV_OPEN ) );
-
- body_Axis = cbezier ( list ( ctlpt(E2, -0.668000, 0.648000),
- ctlpt(E2, -0.668000, 0.476000),
- ctlpt(E2, -0.656000, 0.316000),
- ctlpt(E2, -0.640000, 0.140000),
- ctlpt(E2, -0.612000, -0.052000),
- ctlpt(E2, -0.564000, -0.460000),
- ctlpt(E2, -0.564000, -0.460000),
- ctlpt(E2, -0.072000, 0.432000),
- ctlpt(E2, 0.276000, 0.428000),
- ctlpt(E2, 0.540000, -0.152000),
- ctlpt(E2, 0.660000, -0.408000),
- ctlpt(E2, 0.896000, -0.180000),
- ctlpt(E2, 1.132000, -0.132000),
- ctlpt(E2, 1.244000, -0.188000),
- ctlpt(E2, 1.564000, -0.200000),
- ctlpt(E2, 1.764000, -0.140000),
- ctlpt(E2, 1.804000, -0.008000) ));
-
- Srf1 = SWPSCLSRF( body_Cross * rotz(90), body_Axis, body_scaleCrv, off, 0 );
- cross2 = scale(vector (0.5,1.0,1.0))*circle(vector(0.0,0.0,0.0),0.4);
-
- beten = SWPSCLSRF( cross2, body_Axis, body_scaleCrv, off, 0 );
- free(cross2);
-
- color(srf1,blue);
- color(beten,yellow);
- free(body_Axis);
- free(body_scaleCrv);
- free(body_Cross);
- body = list(srf1,beten);
- free(srf1);
- free(beten);
-
- base_nail =scale( vector(1,1,0.2))* cone ( vector(0,0,0), vector(1,0,0), 0.5);
- color( base_nail, white );
-
- base_phalanx = scale(vector( 1,1,0.8))*sphere( vector(0,0,0), 0.7);
- color ( base_phalanx, blue);
-
- base_finger = list ( base_phalanx, base_nail * trans(vector(0.3,0,0)));
-
- left_finger = base_finger * rotz(-30) * trans(vector(0,-0.2,0));
- middle_finger = base_finger;
- right_finger = base_finger * rotz(30)*trans(vector(0,0.2,0));
-
- pie = left_finger + middle_finger + right_finger;
-
- free(base_finger);
- free(left_finger);
- free(middle_finger);
- free(right_finger);
-
-
-
-
- front_leg_cross = scale(vector (0.8,1,1.0))*circle(vector(0.0,0.0,0.0),0.2);
-
- front_leg_scale = cbspline(3,
- list (
- ctlpt(E2, 0, 0 ),
- ctlpt(E2, 0, 0.5),
- ctlpt(E2, 0.228, 1),
- ctlpt(E2, 0.492, 1.8 ),
-
- ctlpt(E2, 0.952, 2.3),
- ctlpt(E2, 1, 2.5 ),
- ctlpt(E2, 1.2, 1),
- ctlpt(E2, 1.4, 3)),
-
- list(KV_OPEN));
-
- front_leg_axis = cbspline( 4,
- list( ctlpt( E2,-0.14, 1),
- ctlpt( E2,-0.14, 1),
- ctlpt( E2,-0.14, 1),
-
- ctlpt( E2,-0.14, 1),
- ctlpt( E2,-0.13, -0.21),
- ctlpt( E2,-0.1, -0.34),
- ctlpt( E2, 0.3, -0.41)),
- list( KV_OPEN ) );
-
-
- front_leg = SWPSCLSRF(front_leg_cross,front_leg_Axis,front_leg_scale, off, 0 );
- color (front_leg,blue);
- free(front_leg_cross);
- free(front_leg_axis);
- free(front_leg_scale);
-
- whole_front_leg =list(front_leg,pie*scale(vector(0.45,0.45,0.45))
- *rotx(90)*roty(180)*trans(vector(-0.14,1,0)));
-
- free(front_leg);
-
-
- base_finger2 = list ( base_phalanx, base_nail *scale(vector(5/7,5/7,5/7))* trans(vector(0.3,0,0)));
-
- left_finger2 = base_finger2 * rotz(-30) * trans(vector(0,-0.3,0));
- middle_finger2 = base_finger2;
- right_finger2 = base_finger2 * rotz(30)*trans(vector(0,0.3,0));
-
- pie2 = left_finger2 + middle_finger2 + right_finger2;
- free(base_nail);
- free(base_phalanx);
- free(base_finger2);
- free(left_finger2);
- free(middle_finger2);
- free(right_finger2);
-
- back_leg_cross = scale(vector (0.7,1,1.0))*circle(vector(0.0,0.0,0.0),0.2);
-
- back_leg_scale = cbspline(3,
- list (
- ctlpt(E2, 0, 0 ),
- ctlpt(E2, 0, 4),
- ctlpt(E2, 0.228, 4.5),
- ctlpt(E2, 0.492, 2.3 ),
-
- ctlpt(E2, 0.952, 2.8),
- ctlpt(E2, 1, 3.3 ),
- ctlpt(E2, 1.2, 1.5),
- ctlpt(E2, 1.4, 3.5)),
-
- list(KV_OPEN));
-
- back_leg_axis = cbspline( 4,
- list( ctlpt( E2,-0.14, 1),
- ctlpt( E2,-0.14, 1),
- ctlpt( E2,-0.14, 1),
-
- ctlpt( E2,-0.14, 1),
- ctlpt( E2,-0.13, -0.21),
- ctlpt( E2,-0.1, -0.34),
- ctlpt( E2, 0.3, -0.41)),
- list( KV_OPEN ) );
-
- back_leg = SWPSCLSRF( back_leg_cross,back_leg_Axis,back_leg_scale, off, 0 ):
- color(back_leg, blue);
- free(back_leg_cross);
- free(back_leg_axis);
- free(back_leg_scale);
-
- whole_back_leg = list (back_leg, pie2*scale(vector(0.7,0.7,0.4))*rotx(90)*roty(180)*trans(vector(-0.14,1,0)));
-
- free(back_leg);
- free(pie);
-
-
-
-
-
- dino = list(body*rotx(90)*rotz(-90)*trans(vector(0.0,-0.6,-0.7))
- *scale(vector(0.8,1.0,1.0))
- ,head*scale(vector(0.2,0.2,0.2))
- ,whole_front_leg*scale(vector(0.25,0.25,0.25))*rotx(-90)*trans(vector(-0.27,-0.2,-0.8)) ,whole_front_leg*scale(vector(0.25,0.25,0.25))*rotx(-90)*rotz(180)*trans(vector(0.27,-0.2,-0.8))
- ,whole_back_leg*scale(vector(0.35,0.35,0.35))*rotx(-90)*trans(vector(-0.2,-0.7,-0.7))
- ,whole_back_leg*scale(vector(0.35,0.35,0.35))*rotx(-90)*rotz(180)*trans(vector(0.2,-0.7,-0.7))
- );
-
- free(body);
- free(head);
- free(whole_front_leg);
- free(whole_back_leg);
-
- interact(dino);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-